package result;
        import com.alibaba.fastjson.JSON;

        import java.util.HashMap;
        import java.util.Map;

public class Result {

    /**
     * 请求成功
     * @return
     */
    public static Map<String,Object> SUCCESS(){
        Map<String,Object> result = new HashMap<>();
        result.put("code", ResultEnum.RequestCode.SUCCESS.code);
        result.put("msg",ResultEnum.RequestCode.SUCCESS.msg);
        return result;
    }

    /**
     * 请求成功
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESS(Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SUCCESS.code);
        result.put("msg",ResultEnum.RequestCode.SUCCESS.msg);
        result.put("data",data);
        return result;
    }

    /**
     * 请求成功(需要返回JSON数据，方便请求方使用，返回JSONString串的话会有很多转义字符“/”)
     * 阿里巴巴的JSON包还是挺厉害的
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESSJSON(Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SUCCESS.code);
        result.put("msg",ResultEnum.RequestCode.SUCCESS.msg);
        result.put("data", JSON.parse(data.toString()));
        return result;
    }

    /**
     * 请求成功，用户自定义msg
     * @param msg 用户自定义成功提示信息（比如：①用户添加成功②权限修改成功）
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESS(String msg,Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SUCCESS.code);
        result.put("msg",msg);
        result.put("data",data);
        return result;
    }

    /**
     * 请求成功，用户自定义msg(需要返回JSON数据，方便请求方使用，返回JSONString串的话会有很多转义字符“/”)
     * 阿里巴巴的JSON包还是挺厉害的
     * @param msg 用户自定义成功提示信息（比如：①用户添加成功②权限修改成功）
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESSJSON(String msg,Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SUCCESS.code);
        result.put("msg",msg);
        result.put("data",JSON.parse(data.toString()));
        return result;
    }

    /**
     * 请求成功，用户自定义msg，不需要返回数据
     * @param msg 用户自定义成功提示信息（比如：①用户删除成功②商品删除成功）
     * @return
     */
    public static Map<String,Object> SUCCESS(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SUCCESS.code);
        result.put("msg",msg);
        return result;
    }

    /**
     * 资源未找到
     * @return
     */
    public static Map<String,Object> NOTFOUND(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.NOT_FOUND.code);
        result.put("msg",ResultEnum.RequestCode.NOT_FOUND.msg);
        return result;
    }

    /**
     * 资源未找到，用户自定义msg
     * @param msg 用户自定义资源未找到提示信息（比如：①查询的订单不存在②查询的用户不存在）
     * @return
     */
    public static Map<String,Object> NOTFOUND(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.NOT_FOUND.code);
        result.put("msg",msg);
        return result;
    }

     /**
     * 执行失败
     * @return
     */
    public static Map<String,Object> FAIL(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.FAIL.code);
        result.put("msg",ResultEnum.RequestCode.FAIL.msg);
        return result;
    }

    /**
     * 执行失败，用户自定义msg
     * @param msg 用户自定义执行失败提示信息（比如：①普通用户查看VIP资源②普通用户登录管理员系统）
     * @return
     */
    public static Map<String,Object> FAIL(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.FAIL.code);
        result.put("msg",msg);
        return result;
    }

    /**
     * 请求失败
     * @return
     */
    public static Map<String,Object> SERVERERROR(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SERVER_ERROR.code);
        result.put("msg",ResultEnum.RequestCode.SERVER_ERROR.msg);
        return result;
    }

    /**
     * 请求失败，用户自定义msg
     * @param msg 用户自定义失败提示信息（比如：①用户删除失败②权限添加失败）
     * @return
     */
    public static Map<String,Object> SERVERERROR(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",ResultEnum.RequestCode.SERVER_ERROR.code);
        result.put("msg",msg);
        return result;
    }

}
